
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

using Nextel.Utils;
using System.Collections.Generic;
using System.Net;
using System.Text;
using System.IO;

public partial class UsuarioNuevo : PageController
{
    private String PAGINA_NUEVO = URLManager.URL_USUARIO_NUEVO;
    private String PAGINA_BUSQUEDA = URLManager.URL_USUARIO;

    protected override void initialize()
    {

        if (!Page.IsPostBack)
        {
            HidError.Value = "";
            btnGuardar.Text = IdiomaCultura.getMensaje(IdiomaCultura.WEB_GRABAR);
            hidMensaje.Value = Request.QueryString["mensaje"] == null ? "" : Request.QueryString["mensaje"];
            txtPerfil.Disabled = true;
            txtgeocerca.Disabled = true;

            if (Request.QueryString["id"] != null)
            {
                subLlenarControl(false);

                hidPk.Value = Request.QueryString["id"];

                UsuarioBean usuario = DBUsuario.getUsuarioBeanPK(hidPk.Value);
                txtCodigo.Value = usuario.codigo;
                txtNombre.Value = usuario.nombre;
                txtLogin.Value = usuario.login;
                txtTelefono.Value = usuario.telefono;
                txtPerfil.Value = usuario.nombreperfil;
                txtgeocerca.Value = usuario.descripciongeocerca;
                //txtClave.Value = usuario.clave;
                hidclave.Value = usuario.clave;
                cmbPerfil.SelectedValue = usuario.codigoperfil;
                cmbGeoCerca.SelectedValue = usuario.idgeocerca;
                chksupervisor.Checked = usuario.supervisor == AbstractBean.ACTIVO ? true : false;

                litTitulo.Text = IdiomaCultura.getMensaje(IdiomaCultura.WEB_EDITARUSUARIO);
                
                txtCodigo.Disabled = true;
            }
            else
            {
                                
                litTitulo.Text = IdiomaCultura.getMensaje(IdiomaCultura.WEB_NUEVOUSUARIO);
                hidPk.Value = "0";
                subLlenarControl(true);

            }

            txtCodigo.Focus();
            cargarcombos();
        }

    }

    #region metodos
    private void cargarcombos()
    {
        // Perfil
        cmbPerfil.DataSource = DBUsuario.getGeneralBean(AbstractBean.ACTIVO, "USPW_USUARIO_S_PERFILXFLAG", ((UsuarioBean)Session[SessionManager.USER_SESSION]).codigo);
        cmbPerfil.DataValueField = "CODIGO";
        cmbPerfil.DataTextField = "NOMBRE";

        cmbGeoCerca.DataSource = DBActividad.getGeneralBean(AbstractBean.ACTIVO, "USPW_GEOCERCA_S_XFLAG");
        cmbGeoCerca.DataValueField = "CODIGO";
        cmbGeoCerca.DataTextField = "NOMBRE";
 
 
        try
        {
            cmbGeoCerca.DataBind();
        }
        catch (Exception e) { }

        cmbGeoCerca.Items.Insert(0, " ");
        cmbGeoCerca.Items[0].Value = "";

        try
        {           
            cmbPerfil.DataBind();
        }
        catch (Exception) { }

    }

    private void subLlenarControl(Boolean pbNuevo)
    {
        UCManNuevo1.Descripcion = IdiomaCultura.getMensaje(IdiomaCultura.WEB_MANTENIMIENTOUSUARIO);
        UCManNuevo1.Link = Request.ApplicationPath + PAGINA_BUSQUEDA;
        UCManNuevo1.Renderizar = true;

    }
    #endregion


    protected void btnGuardar_Click(object sender, EventArgs e)
    {
        UsuarioBean usuario = new UsuarioBean();
        usuario.id = hidPk.Value;
        usuario.codigo = txtCodigo.Value.Trim().ToUpper();
        usuario.login = txtLogin.Value.Trim().ToUpper();
        usuario.nombre = txtNombre.Value.Trim().ToUpper();
        usuario.telefono = txtTelefono.Value.Trim();
        usuario.codigoperfil = cmbPerfil.SelectedValue;
        usuario.supervisor = chksupervisor.Checked ? AbstractBean.ACTIVO : AbstractBean.DESACTIVO;
        usuario.flag = AbstractBean.ACTIVO;
        usuario.idgeocerca = cmbGeoCerca.SelectedValue;
        
        usuario.clave = hidclave.Value;

        if (hidclave.Value != txtClave.Value.Trim())
        {
            usuario.clave = FormsAuthentication.HashPasswordForStoringInConfigFile(txtClave.Value.Trim(), "sha1");
        }

        try
        {

            //GRABA Y ACTUALIZA
            DBUsuario.addUsuario(usuario);

            Response.Redirect(Request.ApplicationPath + PAGINA_NUEVO + "?mensaje="+
                IdiomaCultura.getMensajeEncodeHTML(IdiomaCultura.WEB_MENSAJE_EXITO));
        }
        catch (Exception ex)
        {

            if (IdiomaCultura.WEB_LOGINREPETIDO.Equals(ex.Message))
            {
                HidError.Value = IdiomaCultura.getMensaje(ex.Message, txtLogin.Value);
            }
            else if (IdiomaCultura.WEB_CODIGOREPETIDO.Equals(ex.Message))
            {
                HidError.Value = IdiomaCultura.getMensaje(ex.Message, txtCodigo.Value);
            }
            else
            {
                BaseLN.registrarLog("ERROR:" + ex.Message);
                HidError.Value = HttpUtility.HtmlEncode(ex.Message);
            }
            hidMensaje.Value = "";
        }
    }
    
}